package com.tms.user.bean;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * Author：潘建冰
 * Package：com.tms.user.bean
 * Project：TaskManageSystem
 * name：User
 * Date：2025/3/24  20:40
 */
@Data
@TableName("users")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 用户ID，雪花算法生成
     */
    @TableId(value = "id", type = IdType.INPUT)
    private String id;

    /**
     * 账号，英文数字组合，长度3-11位
     */
    @TableField("username")
    private String username;

    /**
     * 密码，MD5加密，英文数字符号组合，长度8-16位
     */
    @TableField("password")
    private String password;


    /**
     * 真实姓名，中文/英文，2-20位
     */
    @TableField("real_name")
    private String realName;

    /**
     * 电话，11位
     */
    @TableField("phone")
    private String phone;

    /**
     * 邮箱，格式后端校验
     */
    @TableField("email")
    private String email;

    /**
     * 身份证号，18位
     */
    @TableField("id_card")
    private String idCard;

    /**
     * 个人介绍，10-200字
     */
    @TableField("introduction")
    private String introduction;

    /**
     * 地址
     */
    @TableField("address")
    private String address;

    /**
     * 头像地址
     */
    @TableField("avatar")
    private String avatar;

    /**
     * 身份证照片地址
     */
    @TableField("id_photo")
    private String idPhoto;

    /**
     * 状态，0:禁用，1:启用
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 修改时间
     */
    @TableField("update_time")
    private LocalDateTime updateTime;

    /**
     * 上次登录时间
     */
    @TableField("last_login_time")
    private LocalDateTime lastLoginTime;

    /**
     * 是否删除，0:否，1:是
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;
}
